#ifndef DEEPSEEK_PROTOCOL_H_
#define DEEPSEEK_PROTOCOL_H_

#include <string>
#include <vector>


// 定义消息结构
struct Message {
  std::string role;                // 角色（如 "user" 或 "assistant"）
  std::string content;             // 消息内容
  std::string reasoning_content;   // 思考过程
};

// 定义请求结构
struct Request {
  std::string action = "ChatCompletions";
  std::string version;             // 版本信息
  std::string model;               // 模型名称
  std::vector<Message> messages;   // 消息列表
  float temperature = 0.7;         //（取值范围是[0:2)）；
  size_t max_tokens = 100;         // 最大 token 数
};

// 定义响应结构
struct Response {
  std::string id;                  // 响应 ID
  std::string object;              // 对象类型
  std::string version;             // 版本信息
  int created;                     // 创建时间
  std::string model;               // 模型名称
  std::vector<Message> choices;    // 响应消息列表
  bool error;                      // 是否出错
  std::string error_message;       // 错误信息
};

// 协议类
class Protocol {
public:
  // 将请求结构转换为 JSON 字符串
  static std::string SerializeRequest(const Request& request);

  // 将 JSON 字符串解析为响应结构
  static Response ParseResponse(const std::string& json);
};

#endif  // DEEPSEEK_PROTOCOL_H_